home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / GCC 1.37.1r14 / usr / gcc-1.37.1r14 / (gcc-1.37.π) / insn-peep.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-02  |  1.7 KB  |  68 lines  |  [TEXT/CPED]

  1. /* Generated automatically by the program `genpeep'
  2. from the machine description file `md'.  */
  3.  
  4. #include "config.h"
  5. #include "rtl.h"
  6. #include "regs.h"
  7. #include "real.h"
  8.  
  9. extern rtx peep_operand[];
  10.  
  11. #define operands peep_operand
  12.  
  13. rtx
  14. peephole (ins1)
  15.      rtx ins1;
  16. {
  17.   rtx insn, x, pat;
  18.   int i;
  19.  
  20.   if (NEXT_INSN (ins1)
  21.       && GET_CODE (NEXT_INSN (ins1)) == BARRIER)
  22.     return 0;
  23.  
  24.   insn = ins1;
  25.   pat = PATTERN (insn);
  26.   x = pat;
  27.   if (GET_CODE (x) != SET) goto L324;
  28.   x = XEXP (pat, 0);
  29.   if (GET_CODE (x) != REG) goto L324;
  30.   if (GET_MODE (x) != SImode) goto L324;
  31.   if (XINT (x, 0) != 15) goto L324;
  32.   x = XEXP (pat, 1);
  33.   if (GET_CODE (x) != PLUS) goto L324;
  34.   if (GET_MODE (x) != SImode) goto L324;
  35.   x = XEXP (XEXP (pat, 1), 0);
  36.   if (GET_CODE (x) != REG) goto L324;
  37.   if (GET_MODE (x) != SImode) goto L324;
  38.   if (XINT (x, 0) != 15) goto L324;
  39.   x = XEXP (XEXP (pat, 1), 1);
  40.   if (GET_CODE (x) != CONST_INT) goto L324;
  41.   if (XINT (x, 0) != 4) goto L324;
  42.   do { insn = NEXT_INSN (insn);
  43.        if (insn == 0) goto L324; }
  44.   while (GET_CODE (insn) == NOTE);
  45.   if (GET_CODE (insn) == CODE_LABEL
  46.       || GET_CODE (insn) == BARRIER)
  47.     goto L324;
  48.   pat = PATTERN (insn);
  49.   x = pat;
  50.   if (GET_CODE (x) != SET) goto L324;
  51.   x = XEXP (pat, 0);
  52.   operands[0] = x;
  53.   if (! register_operand (x, DFmode)) goto L324;
  54.   x = XEXP (pat, 1);
  55.   operands[1] = x;
  56.   if (! register_operand (x, DFmode)) goto L324;
  57.   if (! (FP_REG_P (operands[0]) && ! FP_REG_P (operands[1]))) goto L324;
  58.   PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (2, operands));
  59.   INSN_CODE (ins1) = 324;
  60.   delete_for_peephole (NEXT_INSN (ins1), insn);
  61.   return NEXT_INSN (insn);
  62.  L324:
  63.  
  64.   return 0;
  65. }
  66.  
  67. rtx peep_operand[2];
  68.